1. Field of the Invention
The invention relates to data processing systems and, more particularly, to a central processing unit used in such a system.
2. Brief Description of the Prior Art
In data processing systems, as with any other sophisticated equipment, the need exists to be able to effectively and inexpensively test, diagnose, and maintain the equipment.
The manufacturers of data processing systems typically generate diagnostic programs which can be used both in the factory and the field to perform some tests with respect to the data processing system and, in particular, the central processing unit. Additional equipment is usually required to specifically test and diagnose specific areas of the central processor unit and the system during the manufacturing process and during the maintenance process in the field. Certain functions which require testing or maintenance may also require the use of specialized diagnostic equipment and/or the expenditure of a substantial amount of time by the personnel performing the task.
A typical example of the above is the testing of a cache memory in the central processing unit of a data processing system. Each storage location in the cache memory typically comprises a data field and a tag field wherein the data field is used to store the contents of a particular main memory location which is stored or mapped into the cache memory for quick access by the processor and the tag field is utilized to store the address of a particular block of main memory storage locations from which the data field was mapped or stored. In a data processing system having substantially less than the full complement or maximum capacity of main memory storage locations, testing of the high order address bits of the tag field can become awkward and expensive especially in the field. Typically, a full complement of memory has been required for this purpose because the processor is arranged to switch or trap to an error-handling program if an address is issued which is not present in the main memory.
Another area of difficulty in diagnosing and testing of the processor occurs with respect to the testing of certain portions or subroutines of the microcode programmed in the control store of the processor. The control store contains a plurality of pre-programmed, addressable microwords used to fetch, decode and execute general instructions stored in main memory or other external locations. The process used to diagnose or test the microcode and, in particular, a specific portion which may be suspected is, for the most part, expensive and time consuming. For example, many machines are provided with what is commonly referred to as a microbreak register which when loaded with the contents of a particular address in the control store and enabled will cause the operation of the processor to stop or freeze when this address in the control is accessed. An oscilloscope is then used to test various conditions in the processor in order to perform the diagnosis or test. However, in such machines it is usually very difficult, if possible at all, to isolate a specific portion of a microcode to be executed for diagnostic purposes and provde for an orderly return to the macroprogram (i.e. general instructions in main memory).
Still another example is the reading and writing of internal state registers or storage devices within the processor which are not directly addressable by the programmer using general instructions. Thus, the reading or loading of such a register or storage device often requires the use of an extensive microprogram in the control store or the use of numerous general instructions in the macroprogram which when decoded and executed by the processor will result in the desired reading or writing operation.